package com.yq.cp.service.yw.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yq.cp.config.UserThreadLocal;
import com.yq.cp.entity.yw.YwBjgl;
import com.yq.cp.entity.yw.YwGdxx;
import com.yq.cp.entity.yw.YwGdxxCljl;
import com.yq.cp.mapper.permission.UserMapper;
import com.yq.cp.mapper.yw.YwBjglMapper;
import com.yq.cp.mapper.yw.YwGdxxCljlMapper;
import com.yq.cp.mapper.yw.YwGdxxMapper;
import com.yq.cp.service.yw.YwGdxxCljlService;
import com.yq.cp.utils.DateTimeUtil;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

/**
 * <p>
 * 运维-工单-处理记录 服务实现类
 * </p>
 *
 * @author zh
 * @since 2024-09-07
 */
@Service
@Transactional
public class YwGdxxCljlServiceImpl extends ServiceImpl<YwGdxxCljlMapper, YwGdxxCljl> implements YwGdxxCljlService {

    @Resource
    YwGdxxCljlMapper ywGdxxCljlMapper;
    @Resource
    YwGdxxMapper ywGdxxMapper;
    @Resource
    YwBjglMapper ywBjglMapper;
    @Resource
    UserMapper userMapper;
    @Override
    public void clgd(YwGdxxCljl ywGdxxCljl) {
        YwGdxxCljl cljl = ywGdxxCljlMapper.selectById(ywGdxxCljl.getId());

        cljl.setClxxwz(ywGdxxCljl.getClxxwz());
        cljl.setClxxtp(ywGdxxCljl.getClxxtp());
        cljl.setClsjTime(DateTimeUtil.dqsj());
        cljl.setAuditState(0);
        ywGdxxCljlMapper.updateById(cljl);

        YwGdxx ywGdxx = ywGdxxMapper.selectById(cljl.getGdxxId());
        ywGdxx.setHxzt(3);
        ywGdxxMapper.updateById(ywGdxx);
    }

    @Override
    public List<YwGdxxCljl> all(YwGdxxCljl ywGdxxCljl) {
        List<YwGdxxCljl> all = ywGdxxCljlMapper.all(ywGdxxCljl.getId());
        return all;
    }

    @Override
    public YwGdxxCljl zxjl(YwGdxxCljl ywGdxxCljl) {
        YwGdxxCljl ywGdxxCljl1 = ywGdxxCljlMapper.zxjl(ywGdxxCljl.getId());


        return ywGdxxCljl1;
    }

    @Override
    public void audit(YwGdxxCljl ywGdxxCljl) {

        YwGdxxCljl cljl = ywGdxxCljlMapper.zxjl(ywGdxxCljl.getId());

        Long userId = UserThreadLocal.get().getId();
        cljl.setAuditState(ywGdxxCljl.getAuditState());
        cljl.setAuditExcuse(ywGdxxCljl.getAuditExcuse());
        cljl.setAuditTime(DateTimeUtil.dqsj());
        cljl.setAuditUserId(userId);
        cljl.setAuditImg(ywGdxxCljl.getAuditImg());
        ywGdxxCljlMapper.updateById(cljl);

        YwGdxx ywGdxx = ywGdxxMapper.selectById(cljl.getGdxxId());
        if (ywGdxxCljl.getAuditState()==1){
            ywGdxx.setHxzt(99);

            QueryWrapper<YwBjgl> queryWrapper=new QueryWrapper<>();
            queryWrapper.eq("gd_id",ywGdxx.getId());
            YwBjgl ywBjgl = ywBjglMapper.selectOne(queryWrapper);
            if (ywBjgl!=null){
                ywBjgl.setBjzt(2);
                ywBjglMapper.updateById(ywBjgl);
            }


        }else {
            ywGdxx.setHxzt(4);

            ywGdxxCljl=new YwGdxxCljl();
            String phone = UserThreadLocal.get().getPhone();
            ywGdxxCljl.setGdxxId(ywGdxx.getId());
            ywGdxxCljl.setJdygId(userId);
            ywGdxxCljl.setJdsjTime(DateTimeUtil.dqsj());
            ywGdxxCljl.setLxdh(phone);
            ywGdxxCljl.setAuditState(0);
            ywGdxxCljlMapper.insert(ywGdxxCljl);
        }
        ywGdxxMapper.updateById(ywGdxx);


    }
}
